/**
 * 给定一个数组，每次选择2个元素一个加一、一个减一
 * 必须保持为正
 * 问最大公约数的可能的数量
 * 操作显然不改变总和，最大公约数记作g，g显然是总和的因子
 * 因此数一下总和因子的数量
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using pii = pair<int, int>;

int N;
vi A;

int proc(){
    if(1 == N) return 1;
    
    llt sum = accumulate(A.begin(), A.end(), 0LL);
    int ans = 0;
    for(llt i=1;i*i<=sum;++i){
        if(sum % i) continue;

        if(i >= N) ++ans;
        if(i*i!=sum){
            if(sum / i >= N) ++ans;
        }
    }
    return ans;
}

void work(){
    cin >> N;
    A.assign(N, {});
    for(auto & s : A) cin >> s;
    cout << proc() << '\n';


    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}